--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MD5.cpp c56df7e8b5506fe78daf9662465bd0cdd288b162 (c56df7e8) Text, 8.03 KB
Tff7b72#Tff7b72include T8b949e"MD5.h"
Te6edf3MD5Tff7b72:Tff7b72:Te6edf3MD5Tb4b4b4(Tb4b4b4)
Tb4b4b4{
T8b949e//nothing
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tffa657charTff7b72* Te6edf3MD5Tff7b72:Tff7b72:Te6edf3make_digestTb4b4b4(Tff7b72const Tffa657unsigned Tffa657char Tff7b72*Te6edf3digestTb4b4b4, Tffa657int Te6edf3lenTb4b4b4) T8b949e/* {{{ */
Tb4b4b4{
Tffa657char Tff7b72* Te6edf3md5str Tff7b72= Tb4b4b4(Tffa657charTff7b72*Tb4b4b4) Te6edf3mallocTb4b4b4(Tff7b72sizeofTb4b4b4(Tffa657charTb4b4b4)Tff7b72*Tb4b4b4(Te6edf3lenTff7b72*T79c0ff2Tff7b72+T79c0ff1Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72static Tff7b72const Tffa657char Te6edf3hexitsTb4b4b4[T79c0ff17Tb4b4b4] Tff7b72= Ta5d6ff"Ta5d6ff0123456789abcdefTa5d6ff"Tb4b4b4;
Tffa657int Te6edf3iTb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3lenTb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Te6edf3md5strTb4b4b4[Te6edf3i Tff7b72* T79c0ff2Tb4b4b4] Tff7b72= Te6edf3hexitsTb4b4b4[Te6edf3digestTb4b4b4[Te6edf3iTb4b4b4] Tff7b72>Tff7b72> T79c0ff4Tb4b4b4]Tb4b4b4;
Te6edf3md5strTb4b4b4[Tb4b4b4(Te6edf3i Tff7b72* T79c0ff2Tb4b4b4) Tff7b72+ T79c0ff1Tb4b4b4] Tff7b72= Te6edf3hexitsTb4b4b4[Te6edf3digestTb4b4b4[Te6edf3iTb4b4b4] Tff7b72& T79c0ff0x0FTb4b4b4]Tb4b4b4;
Tb4b4b4}
Te6edf3md5strTb4b4b4[Te6edf3len Tff7b72* T79c0ff2Tb4b4b4] Tff7b72= Ta5d6ff'Ta5d6ff\0Ta5d6ff'Tb4b4b4;
Tff7b72return Te6edf3md5strTb4b4b4;
Tb4b4b4}
T8b949e/*
* The basic MD5 functions.
*
* E and G are optimized compared to their RFC 1321 definitions for
* architectures that lack an AND-NOT instruction, just like in Colin Plumb's
* implementation.
* E() has been used instead of F() because F() is already defined in the Arduino core
*/
Tff7b72#Tff7b72define E(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
Tff7b72#Tff7b72define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y))))
Tff7b72#Tff7b72define H(x, y, z) ((x) ^ (y) ^ (z))
Tff7b72#Tff7b72define I(x, y, z) ((y) ^ ((x) | ~(z)))
T8b949e/*
* The MD5 transformation for all four rounds.
*/
Tff7b72#Tff7b72define STEP(f, a, b, c, d, x, t, s) \
Tff7b72 (a) += f((b), (c), (d)) + (x) + (t); \
Tff7b72 (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \
Tff7b72 (a) += (b);
T8b949e/*
* SET reads 4 input bytes in little-endian byte order and stores them
* in a properly aligned word in host byte order.
*
* The check for little-endian architectures that tolerate unaligned
* memory accesses is just an optimization. Nothing will break if it
* doesn't work.
*/
Tff7b72#Tff7b72if defined(__i386__) || defined(__x86_64__) || defined(__vax__)
Tff7b72#Tff7b72 define SET(n) \
Tff7b72 (*(MD5_u32plus *)&ptr[(n) * 4])
Tff7b72#Tff7b72 define GET(n) \
Tff7b72 SET(n)
Tff7b72#Tff7b72else
Tff7b72#Tff7b72 define SET(n) \
Tff7b72 (ctx->block[(n)] = \
Tff7b72 (MD5_u32plus)ptr[(n) * 4] | \
Tff7b72 ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \
Tff7b72 ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \
Tff7b72 ((MD5_u32plus)ptr[(n) * 4 + 3] << 24))
Tff7b72#Tff7b72 define GET(n) \
Tff7b72 (ctx->block[(n)])
Tff7b72#Tff7b72endif
T8b949e/*
* This processes one or more 64-byte data blocks, but does NOT update
* the bit counters. There are no alignment requirements.
*/
Tff7b72const Tffa657void Tff7b72*Te6edf3MD5Tff7b72:Tff7b72:Te6edf3bodyTb4b4b4(Tffa657void Tff7b72*Te6edf3ctxBufTb4b4b4, Tff7b72const Tffa657void Tff7b72*Te6edf3dataTb4b4b4, Tffa657size_t Te6edf3sizeTb4b4b4)
Tb4b4b4{
Te6edf3MD5_CTX Tff7b72*Te6edf3ctx Tff7b72= Tb4b4b4(Te6edf3MD5_CTXTff7b72*Tb4b4b4)Te6edf3ctxBufTb4b4b4;
Tff7b72const Tffa657unsigned Tffa657char Tff7b72*Te6edf3ptrTb4b4b4;
Te6edf3MD5_u32plus Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4;
Te6edf3MD5_u32plus Te6edf3saved_aTb4b4b4, Te6edf3saved_bTb4b4b4, Te6edf3saved_cTb4b4b4, Te6edf3saved_dTb4b4b4;
Te6edf3ptr Tff7b72= Tb4b4b4(Tffa657unsigned Tffa657charTff7b72*Tb4b4b4)Te6edf3dataTb4b4b4;
Te6edf3a Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3aTb4b4b4;
Te6edf3b Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3bTb4b4b4;
Te6edf3c Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3cTb4b4b4;
Te6edf3d Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3dTb4b4b4;
Tff7b72do Tb4b4b4{
Te6edf3saved_a Tff7b72= Te6edf3aTb4b4b4;
Te6edf3saved_b Tff7b72= Te6edf3bTb4b4b4;
Te6edf3saved_c Tff7b72= Te6edf3cTb4b4b4;
Te6edf3saved_d Tff7b72= Te6edf3dTb4b4b4;
T8b949e/* Round 1
* E() has been used instead of F() because F() is already defined in the Arduino core
*/
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4, T79c0ff0xd76aa478Tb4b4b4, T79c0ff7Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4, T79c0ff0xe8c7b756Tb4b4b4, T79c0ff12Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff2Tb4b4b4)Tb4b4b4, T79c0ff0x242070dbTb4b4b4, T79c0ff17Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff3Tb4b4b4)Tb4b4b4, T79c0ff0xc1bdceeeTb4b4b4, T79c0ff22Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff4Tb4b4b4)Tb4b4b4, T79c0ff0xf57c0fafTb4b4b4, T79c0ff7Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff5Tb4b4b4)Tb4b4b4, T79c0ff0x4787c62aTb4b4b4, T79c0ff12Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff6Tb4b4b4)Tb4b4b4, T79c0ff0xa8304613Tb4b4b4, T79c0ff17Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff7Tb4b4b4)Tb4b4b4, T79c0ff0xfd469501Tb4b4b4, T79c0ff22Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4, T79c0ff0x698098d8Tb4b4b4, T79c0ff7Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff9Tb4b4b4)Tb4b4b4, T79c0ff0x8b44f7afTb4b4b4, T79c0ff12Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4, T79c0ff0xffff5bb1Tb4b4b4, T79c0ff17Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff11Tb4b4b4)Tb4b4b4, T79c0ff0x895cd7beTb4b4b4, T79c0ff22Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff12Tb4b4b4)Tb4b4b4, T79c0ff0x6b901122Tb4b4b4, T79c0ff7Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff13Tb4b4b4)Tb4b4b4, T79c0ff0xfd987193Tb4b4b4, T79c0ff12Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff14Tb4b4b4)Tb4b4b4, T79c0ff0xa679438eTb4b4b4, T79c0ff17Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ETb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3SETTb4b4b4(T79c0ff15Tb4b4b4)Tb4b4b4, T79c0ff0x49b40821Tb4b4b4, T79c0ff22Tb4b4b4)
T8b949e/* Round 2 */
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4, T79c0ff0xf61e2562Tb4b4b4, T79c0ff5Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff6Tb4b4b4)Tb4b4b4, T79c0ff0xc040b340Tb4b4b4, T79c0ff9Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff11Tb4b4b4)Tb4b4b4, T79c0ff0x265e5a51Tb4b4b4, T79c0ff14Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4, T79c0ff0xe9b6c7aaTb4b4b4, T79c0ff20Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff5Tb4b4b4)Tb4b4b4, T79c0ff0xd62f105dTb4b4b4, T79c0ff5Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4, T79c0ff0x02441453Tb4b4b4, T79c0ff9Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff15Tb4b4b4)Tb4b4b4, T79c0ff0xd8a1e681Tb4b4b4, T79c0ff14Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff4Tb4b4b4)Tb4b4b4, T79c0ff0xe7d3fbc8Tb4b4b4, T79c0ff20Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff9Tb4b4b4)Tb4b4b4, T79c0ff0x21e1cde6Tb4b4b4, T79c0ff5Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff14Tb4b4b4)Tb4b4b4, T79c0ff0xc33707d6Tb4b4b4, T79c0ff9Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff3Tb4b4b4)Tb4b4b4, T79c0ff0xf4d50d87Tb4b4b4, T79c0ff14Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4, T79c0ff0x455a14edTb4b4b4, T79c0ff20Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff13Tb4b4b4)Tb4b4b4, T79c0ff0xa9e3e905Tb4b4b4, T79c0ff5Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff2Tb4b4b4)Tb4b4b4, T79c0ff0xfcefa3f8Tb4b4b4, T79c0ff9Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff7Tb4b4b4)Tb4b4b4, T79c0ff0x676f02d9Tb4b4b4, T79c0ff14Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3GTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff12Tb4b4b4)Tb4b4b4, T79c0ff0x8d2a4c8aTb4b4b4, T79c0ff20Tb4b4b4)
T8b949e/* Round 3 */
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff5Tb4b4b4)Tb4b4b4, T79c0ff0xfffa3942Tb4b4b4, T79c0ff4Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4, T79c0ff0x8771f681Tb4b4b4, T79c0ff11Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff11Tb4b4b4)Tb4b4b4, T79c0ff0x6d9d6122Tb4b4b4, T79c0ff16Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff14Tb4b4b4)Tb4b4b4, T79c0ff0xfde5380cTb4b4b4, T79c0ff23Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4, T79c0ff0xa4beea44Tb4b4b4, T79c0ff4Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff4Tb4b4b4)Tb4b4b4, T79c0ff0x4bdecfa9Tb4b4b4, T79c0ff11Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff7Tb4b4b4)Tb4b4b4, T79c0ff0xf6bb4b60Tb4b4b4, T79c0ff16Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4, T79c0ff0xbebfbc70Tb4b4b4, T79c0ff23Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff13Tb4b4b4)Tb4b4b4, T79c0ff0x289b7ec6Tb4b4b4, T79c0ff4Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4, T79c0ff0xeaa127faTb4b4b4, T79c0ff11Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff3Tb4b4b4)Tb4b4b4, T79c0ff0xd4ef3085Tb4b4b4, T79c0ff16Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff6Tb4b4b4)Tb4b4b4, T79c0ff0x04881d05Tb4b4b4, T79c0ff23Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff9Tb4b4b4)Tb4b4b4, T79c0ff0xd9d4d039Tb4b4b4, T79c0ff4Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff12Tb4b4b4)Tb4b4b4, T79c0ff0xe6db99e5Tb4b4b4, T79c0ff11Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff15Tb4b4b4)Tb4b4b4, T79c0ff0x1fa27cf8Tb4b4b4, T79c0ff16Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3HTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff2Tb4b4b4)Tb4b4b4, T79c0ff0xc4ac5665Tb4b4b4, T79c0ff23Tb4b4b4)
T8b949e/* Round 4 */
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4, T79c0ff0xf4292244Tb4b4b4, T79c0ff6Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff7Tb4b4b4)Tb4b4b4, T79c0ff0x432aff97Tb4b4b4, T79c0ff10Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff14Tb4b4b4)Tb4b4b4, T79c0ff0xab9423a7Tb4b4b4, T79c0ff15Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff5Tb4b4b4)Tb4b4b4, T79c0ff0xfc93a039Tb4b4b4, T79c0ff21Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff12Tb4b4b4)Tb4b4b4, T79c0ff0x655b59c3Tb4b4b4, T79c0ff6Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff3Tb4b4b4)Tb4b4b4, T79c0ff0x8f0ccc92Tb4b4b4, T79c0ff10Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4, T79c0ff0xffeff47dTb4b4b4, T79c0ff15Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4, T79c0ff0x85845dd1Tb4b4b4, T79c0ff21Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4, T79c0ff0x6fa87e4fTb4b4b4, T79c0ff6Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff15Tb4b4b4)Tb4b4b4, T79c0ff0xfe2ce6e0Tb4b4b4, T79c0ff10Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff6Tb4b4b4)Tb4b4b4, T79c0ff0xa3014314Tb4b4b4, T79c0ff15Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff13Tb4b4b4)Tb4b4b4, T79c0ff0x4e0811a1Tb4b4b4, T79c0ff21Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff4Tb4b4b4)Tb4b4b4, T79c0ff0xf7537e82Tb4b4b4, T79c0ff6Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff11Tb4b4b4)Tb4b4b4, T79c0ff0xbd3af235Tb4b4b4, T79c0ff10Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3bTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff2Tb4b4b4)Tb4b4b4, T79c0ff0x2ad7d2bbTb4b4b4, T79c0ff15Tb4b4b4)
Te6edf3STEPTb4b4b4(Te6edf3ITb4b4b4, Te6edf3bTb4b4b4, Te6edf3cTb4b4b4, Te6edf3dTb4b4b4, Te6edf3aTb4b4b4, Te6edf3GETTb4b4b4(T79c0ff9Tb4b4b4)Tb4b4b4, T79c0ff0xeb86d391Tb4b4b4, T79c0ff21Tb4b4b4)
Te6edf3a Tff7b72+Tff7b72= Te6edf3saved_aTb4b4b4;
Te6edf3b Tff7b72+Tff7b72= Te6edf3saved_bTb4b4b4;
Te6edf3c Tff7b72+Tff7b72= Te6edf3saved_cTb4b4b4;
Te6edf3d Tff7b72+Tff7b72= Te6edf3saved_dTb4b4b4;
Te6edf3ptr Tff7b72+Tff7b72= T79c0ff64Tb4b4b4;
Tb4b4b4} Tff7b72while Tb4b4b4(Te6edf3size Tff7b72-Tff7b72= T79c0ff64Tb4b4b4)Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3a Tff7b72= Te6edf3aTb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3b Tff7b72= Te6edf3bTb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3c Tff7b72= Te6edf3cTb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3d Tff7b72= Te6edf3dTb4b4b4;
Tff7b72return Te6edf3ptrTb4b4b4;
Tb4b4b4}
Tffa657void Te6edf3MD5Tff7b72:Tff7b72:Te6edf3MD5InitTb4b4b4(Tffa657void Tff7b72*Te6edf3ctxBufTb4b4b4)
Tb4b4b4{
Te6edf3MD5_CTX Tff7b72*Te6edf3ctx Tff7b72= Tb4b4b4(Te6edf3MD5_CTXTff7b72*Tb4b4b4)Te6edf3ctxBufTb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3a Tff7b72= T79c0ff0x67452301Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3b Tff7b72= T79c0ff0xefcdab89Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3c Tff7b72= T79c0ff0x98badcfeTb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3d Tff7b72= T79c0ff0x10325476Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3lo Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3hi Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3memsetTb4b4b4(Te6edf3ctxTff7b72-Tff7b72>Te6edf3blockTb4b4b4, T79c0ff0Tb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3ctxTff7b72-Tff7b72>Te6edf3blockTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3memsetTb4b4b4(Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4, T79c0ff0Tb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657void Te6edf3MD5Tff7b72:Tff7b72:Te6edf3MD5UpdateTb4b4b4(Tffa657void Tff7b72*Te6edf3ctxBufTb4b4b4, Tff7b72const Tffa657void Tff7b72*Te6edf3dataTb4b4b4, Tffa657size_t Te6edf3sizeTb4b4b4)
Tb4b4b4{
Te6edf3MD5_CTX Tff7b72*Te6edf3ctx Tff7b72= Tb4b4b4(Te6edf3MD5_CTXTff7b72*Tb4b4b4)Te6edf3ctxBufTb4b4b4;
Te6edf3MD5_u32plus Te6edf3saved_loTb4b4b4;
Te6edf3MD5_u32plus Te6edf3usedTb4b4b4, Te6edf3freeTb4b4b4;
Te6edf3saved_lo Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3loTb4b4b4;
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3ctxTff7b72-Tff7b72>Te6edf3lo Tff7b72= Tb4b4b4(Te6edf3saved_lo Tff7b72+ Te6edf3sizeTb4b4b4) Tff7b72& T79c0ff0x1fffffffTb4b4b4) Tff7b72< Te6edf3saved_loTb4b4b4) Tb4b4b4{
Te6edf3ctxTff7b72-Tff7b72>Te6edf3hiTff7b72+Tff7b72+Tb4b4b4;
Tb4b4b4}
Te6edf3ctxTff7b72-Tff7b72>Te6edf3hi Tff7b72+Tff7b72= Te6edf3size Tff7b72>Tff7b72> T79c0ff29Tb4b4b4;
Te6edf3used Tff7b72= Te6edf3saved_lo Tff7b72& T79c0ff0x3fTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3usedTb4b4b4) Tb4b4b4{
Te6edf3free Tff7b72= T79c0ff64 Tff7b72- Te6edf3usedTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3size Tff7b72< Te6edf3freeTb4b4b4) Tb4b4b4{
Te6edf3memcpyTb4b4b4(Tff7b72&Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[Te6edf3usedTb4b4b4]Tb4b4b4, Te6edf3dataTb4b4b4, Te6edf3sizeTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3memcpyTb4b4b4(Tff7b72&Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[Te6edf3usedTb4b4b4]Tb4b4b4, Te6edf3dataTb4b4b4, Te6edf3freeTb4b4b4)Tb4b4b4;
Te6edf3data Tff7b72= Tb4b4b4(Tffa657unsigned Tffa657char Tff7b72*Tb4b4b4)Te6edf3data Tff7b72+ Te6edf3freeTb4b4b4;
Te6edf3size Tff7b72-Tff7b72= Te6edf3freeTb4b4b4;
Te6edf3bodyTb4b4b4(Te6edf3ctxTb4b4b4, Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4, T79c0ff64Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3size Tff7b72>Tff7b72= T79c0ff64Tb4b4b4) Tb4b4b4{
Te6edf3data Tff7b72= Te6edf3bodyTb4b4b4(Te6edf3ctxTb4b4b4, Te6edf3dataTb4b4b4, Te6edf3size Tff7b72& Tff7b72~Tb4b4b4(Tffa657size_tTb4b4b4)T79c0ff0x3fTb4b4b4)Tb4b4b4;
Te6edf3size Tff7b72&Tff7b72= T79c0ff0x3fTb4b4b4;
Tb4b4b4}
Te6edf3memcpyTb4b4b4(Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4, Te6edf3dataTb4b4b4, Te6edf3sizeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657void Te6edf3MD5Tff7b72:Tff7b72:Te6edf3MD5FinalTb4b4b4(Tffa657unsigned Tffa657char Tff7b72*Te6edf3resultTb4b4b4, Tffa657void Tff7b72*Te6edf3ctxBufTb4b4b4)
Tb4b4b4{
Te6edf3MD5_CTX Tff7b72*Te6edf3ctx Tff7b72= Tb4b4b4(Te6edf3MD5_CTXTff7b72*Tb4b4b4)Te6edf3ctxBufTb4b4b4;
Te6edf3MD5_u32plus Te6edf3usedTb4b4b4, Te6edf3freeTb4b4b4;
Te6edf3used Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3lo Tff7b72& T79c0ff0x3fTb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[Te6edf3usedTff7b72+Tff7b72+Tb4b4b4] Tff7b72= T79c0ff0x80Tb4b4b4;
Te6edf3free Tff7b72= T79c0ff64 Tff7b72- Te6edf3usedTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3free Tff7b72< T79c0ff8Tb4b4b4) Tb4b4b4{
Te6edf3memsetTb4b4b4(Tff7b72&Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[Te6edf3usedTb4b4b4]Tb4b4b4, T79c0ff0Tb4b4b4, Te6edf3freeTb4b4b4)Tb4b4b4;
Te6edf3bodyTb4b4b4(Te6edf3ctxTb4b4b4, Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4, T79c0ff64Tb4b4b4)Tb4b4b4;
Te6edf3used Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3free Tff7b72= T79c0ff64Tb4b4b4;
Tb4b4b4}
Te6edf3memsetTb4b4b4(Tff7b72&Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[Te6edf3usedTb4b4b4]Tb4b4b4, T79c0ff0Tb4b4b4, Te6edf3free Tff7b72- T79c0ff8Tb4b4b4)Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3lo Tff7b72<Tff7b72<Tff7b72= T79c0ff3Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[T79c0ff56Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3loTb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[T79c0ff57Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3lo Tff7b72>Tff7b72> T79c0ff8Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[T79c0ff58Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3lo Tff7b72>Tff7b72> T79c0ff16Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[T79c0ff59Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3lo Tff7b72>Tff7b72> T79c0ff24Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[T79c0ff60Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3hiTb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[T79c0ff61Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3hi Tff7b72>Tff7b72> T79c0ff8Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[T79c0ff62Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3hi Tff7b72>Tff7b72> T79c0ff16Tb4b4b4;
Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4[T79c0ff63Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3hi Tff7b72>Tff7b72> T79c0ff24Tb4b4b4;
Te6edf3bodyTb4b4b4(Te6edf3ctxTb4b4b4, Te6edf3ctxTff7b72-Tff7b72>Te6edf3bufferTb4b4b4, T79c0ff64Tb4b4b4)Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3aTb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3a Tff7b72>Tff7b72> T79c0ff8Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff2Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3a Tff7b72>Tff7b72> T79c0ff16Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff3Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3a Tff7b72>Tff7b72> T79c0ff24Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff4Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3bTb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff5Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3b Tff7b72>Tff7b72> T79c0ff8Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff6Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3b Tff7b72>Tff7b72> T79c0ff16Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff7Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3b Tff7b72>Tff7b72> T79c0ff24Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff8Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3cTb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff9Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3c Tff7b72>Tff7b72> T79c0ff8Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff10Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3c Tff7b72>Tff7b72> T79c0ff16Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff11Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3c Tff7b72>Tff7b72> T79c0ff24Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff12Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3dTb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff13Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3d Tff7b72>Tff7b72> T79c0ff8Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff14Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3d Tff7b72>Tff7b72> T79c0ff16Tb4b4b4;
Te6edf3resultTb4b4b4[T79c0ff15Tb4b4b4] Tff7b72= Te6edf3ctxTff7b72-Tff7b72>Te6edf3d Tff7b72>Tff7b72> T79c0ff24Tb4b4b4;
Te6edf3memsetTb4b4b4(Te6edf3ctxTb4b4b4, T79c0ff0Tb4b4b4, Tff7b72sizeofTb4b4b4(Tff7b72*Te6edf3ctxTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657unsigned Tffa657charTff7b72* Te6edf3MD5Tff7b72:Tff7b72:Te6edf3make_hashTb4b4b4(Tffa657char Tff7b72*Te6edf3argTb4b4b4)
Tb4b4b4{
Te6edf3MD5_CTX Te6edf3contextTb4b4b4;
Tffa657unsigned Tffa657char Tff7b72* Te6edf3hash Tff7b72= Tb4b4b4(Tffa657unsigned Tffa657char Tff7b72*Tb4b4b4) Te6edf3mallocTb4b4b4(T79c0ff16Tb4b4b4)Tb4b4b4;
Te6edf3MD5InitTb4b4b4(Tff7b72&Te6edf3contextTb4b4b4)Tb4b4b4;
Te6edf3MD5UpdateTb4b4b4(Tff7b72&Te6edf3contextTb4b4b4, Te6edf3argTb4b4b4, Te6edf3strlenTb4b4b4(Te6edf3argTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3MD5FinalTb4b4b4(Te6edf3hashTb4b4b4, Tff7b72&Te6edf3contextTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3hashTb4b4b4;
Tb4b4b4}
Tffa657unsigned Tffa657charTff7b72* Te6edf3MD5Tff7b72:Tff7b72:Te6edf3make_hashTb4b4b4(Tffa657char Tff7b72*Te6edf3argTb4b4b4,Tffa657size_t Te6edf3sizeTb4b4b4)
Tb4b4b4{
Te6edf3MD5_CTX Te6edf3contextTb4b4b4;
Tffa657unsigned Tffa657char Tff7b72* Te6edf3hash Tff7b72= Tb4b4b4(Tffa657unsigned Tffa657char Tff7b72*Tb4b4b4) Te6edf3mallocTb4b4b4(T79c0ff16Tb4b4b4)Tb4b4b4;
Te6edf3MD5InitTb4b4b4(Tff7b72&Te6edf3contextTb4b4b4)Tb4b4b4;
Te6edf3MD5UpdateTb4b4b4(Tff7b72&Te6edf3contextTb4b4b4, Te6edf3argTb4b4b4, Te6edf3sizeTb4b4b4)Tb4b4b4;
Te6edf3MD5FinalTb4b4b4(Te6edf3hashTb4b4b4, Tff7b72&Te6edf3contextTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3hashTb4b4b4;
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────